#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
//一、求四个数中的最大值

// 法一：（if语句）

//int main()
//{
//	int a, b, c, d;
//	scanf("%d %d %d %d", &a, &b, &c, &d);
//	if (a < b)
//	{
//		a = b;
//	}
//	if (a < c)
//	{
//		a = c;
//	}
//	if (a < d)
//	{
//		a = d;
//	}
//	printf("%d\n", a);
//	return 0;
//}

//法二：（三目操作符：）

//int main()
//{
//	int a, b, c, d;
//	scanf("%d %d %d %d", &a, &b, &c, &d);
//	int r = a > b ? a : b;
//	r = r > c ? r : c;
//	r = r > d ? r : d;
//	printf("%d\n",r);
//	return 0;
//}

//法三：（for循环+if语句）很好！！！

//int main()
//{
//	int max = 0;
//	int x,i;
//	for (i = 0; i < 4; i++)
//	{
//		scanf("%d",&x);
//		if (max < x)
//			max = x;
//	}
//	printf("%d\n",max);
//	return 0;
//}

//法四:数组（1）和法三做题思路差不多（好！！！）

//int main()
//{
//	int i = 0;
//	int max = 0;
//	int arr[4] = { 0 };
//	for (i = 0; i < 4; i++)
//	{
//		scanf("%d", &arr[i]);
//		if (arr[i] > max)
//			max = arr[i];
//	}
//	printf("%d\n", max);
//
//	return 0;
//}

//法四:数组（2）- 先把四个数存起来再判断 - 假设最大值是输入的第一个数

//int main()
//{
//	int arr[4] = { 0 };
//	int i = 0;
//	for (i = 0; i < 4; i++)
//	{
//		scanf("%d",&arr[i]);//只有数组名arr才不需要&符号，数组元素arr[0是需要&的
//	}
//	int max = arr[0];//假设最大值是输入的第一个数
//	int j = 0;
//	for (j = 1; j < 4; j++)
//	{
//		if (arr[j] > max)
//			max = arr[j];
//	}
//	printf("%d\n",max);
//	return 0;
//}

//总：法三法四都很nice！可能更喜欢法三和法四（1）吧！！！

//二、（1）
//写代码将三个整数数按从大到小输出。
//int main()
//{
//	int a = 0, b = 0, c = 0;
//	scanf("%d %d %d",&a,&b,&c);
//	if (a < b)
//	{
//		int temp = a;
//		a = b;
//		b = temp;
//	}
//	if (a <c)
//	{
//		int temp = a;
//		a = c;
//		c = temp;
//	}
//	if (b < c)
//	{
//		int temp = b;
//		b = c;
//		c = temp;
//	}
//	printf("%d %d %d\n",a,b,c);
//	return 0;
//}

//二、(2)
//将四个数按照从大到小的顺序排列
//int main()
//{
//	int a, b, c, d;
//	scanf("%d %d %d %d",&a,&b,&c,&d);
//	if (a < b)
//	{
//		int temp = a;
//		a = b;
//		b = temp;
//	}
//	if (a < c)
//	{
//		int temp = a;
//		a = c;
//		c = temp;
//	}
//	if (a < d)
//	{
//		int temp = a;
//		a = d;
//		d = temp;
//	}
//	if (b < c)
//	{
//		int temp = b;
//		b = c;
//		c = temp;
//	}
//	if (b < d)
//	{
//		int temp = b;
//		b = d;
//		d = temp;
//	}
//	if (c < d)
//	{
//		int temp = c;
//		c = d;
//		d = temp;
//	}
//	printf("%d %d %d %d\n",a,b,c,d);
//	return 0;
//}


 //三、
 //输出描述：
 //printf("Hello world!\n");
 //cout << "Hello world!" << endl;

 //法一：

//#include <stdio.h>
//int main()
//{
//	printf("printf(\"Hello world!\\n\");\n");
//	printf("cout << \"Hello world!\" << endl;");
//	return 0;
//}

 //法二：

//#include <stdio.h>
//int main()
//{
//	printf("%s\n", "printf(\"Hello world!\\n\");");
//	printf("%s\n", "cout << \"Hello world!\" << endl; ");
//	return 0;
//}


//printf 函数中 %d %2d %-2d %02d %.2d 的区别：

//int main()
//{
//	int i = 1;
//	while (i <= 100)
//	{
//		//printf("%d ",i);//1 2 3 4 5 6 7 8 9 10 
//	                      //11 12 13 14 15 16 17 18 19 20 
//					  //%d :普通输出,即左对齐  
//	//printf("%2d ", i); // 1  2  3  4  5  6  7  8  9 10 
//		                 //11 12 13 14 15 16 17 18 19 20
//		//%2d :按宽度为2输出，右对齐方式输出。若不够两位，左边补空格
//  //printf("%-2d ", i);//  1  2  3  4  5  6  7  8  9  10 
//                      //   11 12 13 14 15 16 17 18 19 20
//       //%-2d按宽度为2输出，左对齐方式输出。若不够两位，左边补空格
//	//	printf("%02d ", i);//01 02 03 04 05 06 07 08 09 10 
//		                   //11 12 13 14 15 16 17 18 19 20 
//		//%02d :同样宽度为2，右对齐方式。位数不够，左边补0
//		printf("%.2d ", i);//01 02 03 04 05 06 07 08 09 10 
//		                   //11 12 13 14 15 16 17 18 19 20 
//		//%.2d :从执行效果来看，与%02d一样。
//		i++;
//	}
//	return 0;
// }


//四、出生日期输入输出
//描述：输入一个人的出生日期（包括年月日），将该生日中的年、月、日分别输出。
//输入描述：输入只有一行，出生日期，包括年月日，年月日之间的数字没有分隔符。
//输出描述：三行，第一行为出生年份，第二行为出生月份，第三行为出生日期。输出时如果月份或天数为1位数，需要在1位数前面补0。
// 如 输入：20130225
//    输出：year = 2013
//          month = 02
//          date = 25
//详见：https://www.nowcoder.com/practice/4a4a9dd1edb6453ba4a0432319200743
 
 
//法一：（用 / % 做）(1)

//int main()
//{
//	int i = 0;
//	scanf("%d",&i);
//	printf("year=%d\n", i / 10000);
//	printf("month=%02d\n",i/100 - i/10000*100);
//	printf("date=%02d\n", i % 100);
//	return 0;
//}

//(2)

//int main()
//{
//	int i = 0;
//	scanf("%d",&i);
//	printf("year=%d\n", i / 10000);
//	int t = i / 100;
//	printf("month=%02d\n", t%100);
//	printf("date=%02d\n", i % 100);
//	return 0;
//}

//法二：（改进后）

//scanf函数中 %md 怎么用
// %md 表示读入 m 位整数，超出 m 位只读 m 位，不足 m 位按实际位数读入。

//int main()
//{
//	int year = 0, month = 0, date = 0;
//	scanf("%4d%2d%2d", &year, &month, &date);
//	printf("year=%d\nmonth=%02d\ndate=%02d\n", year, month, date);
//	return 0;
//}
//这个代码牛逼！！！


//五、
//转换以下ASCII码为对应字符并输出他们
//73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33
//int main()
//{
//	int i = 0;
//	//char arr[] = { 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33 };
//	//当确定数组中的是ASCII码时，也可以用char来创建数组
// 
//	int arr[] = { 73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116, 33 };
// 
//	int sz = sizeof(arr) / sizeof(arr[0]);//计算数组元素个数=数组的总大小/一个元素的大小
// 
//	for (i = 0; i < sz; i++)
//	{
//		printf("%c",arr[i]);
//	}
//	return 0;
//}


